package controller;

import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.net.Socket;
import java.util.StringTokenizer;

import model.Users;

public class Client_Component implements Runnable{

	private Socket s;
	private ObjectOutputStream output;
	private ObjectInputStream input;
	private String nazwa;
	private int numer;
	private Users u;
	
	public Client_Component(Socket s, ObjectInputStream input,ObjectOutputStream output, Users users) {
		this.s = s;
		this.input = input;
		this.output = output;
		u = users;
	}

	@Override
	public void run() 
	{
		String m1="", m2;
		try 
		{
			nazwa = (String) input.readObject();
			numer = Integer.parseInt(nazwa);
			m1 = u.findUserName(numer);
			if(m1.equals(""))
			{
				u.addUser(numer, "");
				nazwa = "nowy";
			}
			
			//output.writeObject("Witaj "+nazwa);
			
			while (true)
			{
				if (m1.equals(nazwa + ": "+"czesc")) break;
				else if(m1.contains("change_name"))
				{
					StringTokenizer st = new StringTokenizer(m1,";");
					st.nextToken();
					String imie = st.nextToken();
					u.setName(numer, imie);
					nazwa = imie;
				}
				System.out.println("Odebrano wiadomosc od klienta: " + m1 + "\n");
				m2 = InputOutput.weString("Podaj wiadomosc dla klienta "+ nazwa + ": ");
				output.writeObject(nazwa + ": " + m2);
				m1 = (String) input.readObject();
			}
			
			input.close();
			output.close();
			s.close();
		} 
		catch (Exception e) {System.out.println("Wyjatek komponentu klienta po stronie serwera "+e);
		e.printStackTrace();}
	}
}